package br.com.puc.repositories;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.caelum.vraptor.ioc.Component;
import br.com.puc.models.Usuario;

@Component
public class UsuarioRepositoryImpl
    extends Repository<Usuario, Long>
    implements UsuarioRepository {
	
	private HibernateUtil hibernateUtil;

	UsuarioRepositoryImpl(Session session) {
		super(session);
		this.hibernateUtil = new HibernateUtil(session);
	}

	@Override
	public Usuario autenticar(String login, String senha) {
		Query query = session.createQuery("from Usuario where login = :login and senha = :senha");
		query.setParameter("login", login);
		query.setParameter("senha", senha);
		return (Usuario) query.uniqueResult();
	}

	@Override
	public Long quantidadeUsuarios() {
		return hibernateUtil.getQuantidadeRegistros(Usuario.class);
	}
}
